/*
 * XML Type:  entity
 * Namespace: http://java.sun.com/xml/ns/persistence/orm
 * Java type: com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Entity
 *
 * Automatically generated - do not modify.
 */
package com.googlecode.horncomb.orm.jpa.v10.xmlbeans.impl;
/**
 * An XML entity(@http://java.sun.com/xml/ns/persistence/orm).
 *
 * This is a complex type.
 */
@SuppressWarnings("unchecked")
public class EntityImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Entity
{

    /**  */
	private static final long serialVersionUID = -7079843929952582734L;


	public EntityImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }

    private static final javax.xml.namespace.QName DESCRIPTION$0 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "description");
    private static final javax.xml.namespace.QName TABLE$2 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "table");
    private static final javax.xml.namespace.QName SECONDARYTABLE$4 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "secondary-table");
    private static final javax.xml.namespace.QName PRIMARYKEYJOINCOLUMN$6 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "primary-key-join-column");
    private static final javax.xml.namespace.QName IDCLASS$8 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "id-class");
    private static final javax.xml.namespace.QName INHERITANCE$10 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "inheritance");
    private static final javax.xml.namespace.QName DISCRIMINATORVALUE$12 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "discriminator-value");
    private static final javax.xml.namespace.QName DISCRIMINATORCOLUMN$14 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "discriminator-column");
    private static final javax.xml.namespace.QName SEQUENCEGENERATOR$16 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "sequence-generator");
    private static final javax.xml.namespace.QName TABLEGENERATOR$18 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "table-generator");
    private static final javax.xml.namespace.QName NAMEDQUERY$20 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "named-query");
    private static final javax.xml.namespace.QName NAMEDNATIVEQUERY$22 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "named-native-query");
    private static final javax.xml.namespace.QName SQLRESULTSETMAPPING$24 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "sql-result-set-mapping");
    private static final javax.xml.namespace.QName EXCLUDEDEFAULTLISTENERS$26 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "exclude-default-listeners");
    private static final javax.xml.namespace.QName EXCLUDESUPERCLASSLISTENERS$28 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "exclude-superclass-listeners");
    private static final javax.xml.namespace.QName ENTITYLISTENERS$30 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "entity-listeners");
    private static final javax.xml.namespace.QName PREPERSIST$32 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "pre-persist");
    private static final javax.xml.namespace.QName POSTPERSIST$34 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "post-persist");
    private static final javax.xml.namespace.QName PREREMOVE$36 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "pre-remove");
    private static final javax.xml.namespace.QName POSTREMOVE$38 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "post-remove");
    private static final javax.xml.namespace.QName PREUPDATE$40 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "pre-update");
    private static final javax.xml.namespace.QName POSTUPDATE$42 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "post-update");
    private static final javax.xml.namespace.QName POSTLOAD$44 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "post-load");
    private static final javax.xml.namespace.QName ATTRIBUTEOVERRIDE$46 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "attribute-override");
    private static final javax.xml.namespace.QName ASSOCIATIONOVERRIDE$48 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "association-override");
    private static final javax.xml.namespace.QName ATTRIBUTES$50 =
        new javax.xml.namespace.QName("http://java.sun.com/xml/ns/persistence/orm", "attributes");
    private static final javax.xml.namespace.QName NAME$52 =
        new javax.xml.namespace.QName("", "name");
    private static final javax.xml.namespace.QName CLASS1$54 =
        new javax.xml.namespace.QName("", "class");
    private static final javax.xml.namespace.QName ACCESS$56 =
        new javax.xml.namespace.QName("", "access");
    private static final javax.xml.namespace.QName METADATACOMPLETE$58 =
        new javax.xml.namespace.QName("", "metadata-complete");


    /**
     * Gets the "description" element
     */
    public java.lang.String getDescription()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DESCRIPTION$0, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }

    /**
     * Gets (as xml) the "description" element
     */
    public org.apache.xmlbeans.XmlString xgetDescription()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(DESCRIPTION$0, 0);
            return target;
        }
    }

    /**
     * True if has "description" element
     */
    public boolean isSetDescription()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(DESCRIPTION$0) != 0;
        }
    }

    /**
     * Sets the "description" element
     */
    public void setDescription(java.lang.String description)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DESCRIPTION$0, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DESCRIPTION$0);
            }
            target.setStringValue(description);
        }
    }

    /**
     * Sets (as xml) the "description" element
     */
    public void xsetDescription(org.apache.xmlbeans.XmlString description)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(DESCRIPTION$0, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(DESCRIPTION$0);
            }
            target.set(description);
        }
    }

    /**
     * Unsets the "description" element
     */
    public void unsetDescription()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(DESCRIPTION$0, 0);
        }
    }

    /**
     * Gets the "table" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table getTable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table)get_store().find_element_user(TABLE$2, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "table" element
     */
    public boolean isSetTable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(TABLE$2) != 0;
        }
    }

    /**
     * Sets the "table" element
     */
    public void setTable(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table table)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table)get_store().find_element_user(TABLE$2, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table)get_store().add_element_user(TABLE$2);
            }
            target.set(table);
        }
    }

    /**
     * Appends and returns a new empty "table" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table addNewTable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Table)get_store().add_element_user(TABLE$2);
            return target;
        }
    }

    /**
     * Unsets the "table" element
     */
    public void unsetTable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(TABLE$2, 0);
        }
    }

    /**
     * Gets a List of "secondary-table" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable> getSecondaryTableList()
    {
        final class SecondaryTableList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable>
        {
            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable get(int i)
                { return EntityImpl.this.getSecondaryTableArray(i); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable old = EntityImpl.this.getSecondaryTableArray(i);
                EntityImpl.this.setSecondaryTableArray(i, o);
                return old;
            }

            @Override
			public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable o)
                { EntityImpl.this.insertNewSecondaryTable(i).set(o); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable old = EntityImpl.this.getSecondaryTableArray(i);
                EntityImpl.this.removeSecondaryTable(i);
                return old;
            }

            @Override
			public int size()
                { return EntityImpl.this.sizeOfSecondaryTableArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new SecondaryTableList();
        }
    }

    /**
     * Gets array of all "secondary-table" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable[] getSecondaryTableArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(SECONDARYTABLE$4, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "secondary-table" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable getSecondaryTableArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable)get_store().find_element_user(SECONDARYTABLE$4, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "secondary-table" element
     */
    public int sizeOfSecondaryTableArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(SECONDARYTABLE$4);
        }
    }

    /**
     * Sets array of all "secondary-table" element
     */
    public void setSecondaryTableArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable[] secondaryTableArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(secondaryTableArray, SECONDARYTABLE$4);
        }
    }

    /**
     * Sets ith "secondary-table" element
     */
    public void setSecondaryTableArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable secondaryTable)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable)get_store().find_element_user(SECONDARYTABLE$4, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(secondaryTable);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "secondary-table" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable insertNewSecondaryTable(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable)get_store().insert_element_user(SECONDARYTABLE$4, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "secondary-table" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable addNewSecondaryTable()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SecondaryTable)get_store().add_element_user(SECONDARYTABLE$4);
            return target;
        }
    }

    /**
     * Removes the ith "secondary-table" element
     */
    public void removeSecondaryTable(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(SECONDARYTABLE$4, i);
        }
    }

    /**
     * Gets a List of "primary-key-join-column" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn> getPrimaryKeyJoinColumnList()
    {
        final class PrimaryKeyJoinColumnList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn>
        {
            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn get(int i)
                { return EntityImpl.this.getPrimaryKeyJoinColumnArray(i); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn old = EntityImpl.this.getPrimaryKeyJoinColumnArray(i);
                EntityImpl.this.setPrimaryKeyJoinColumnArray(i, o);
                return old;
            }

            @Override
			public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn o)
                { EntityImpl.this.insertNewPrimaryKeyJoinColumn(i).set(o); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn old = EntityImpl.this.getPrimaryKeyJoinColumnArray(i);
                EntityImpl.this.removePrimaryKeyJoinColumn(i);
                return old;
            }

            @Override
			public int size()
                { return EntityImpl.this.sizeOfPrimaryKeyJoinColumnArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new PrimaryKeyJoinColumnList();
        }
    }

    /**
     * Gets array of all "primary-key-join-column" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn[] getPrimaryKeyJoinColumnArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(PRIMARYKEYJOINCOLUMN$6, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "primary-key-join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn getPrimaryKeyJoinColumnArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn)get_store().find_element_user(PRIMARYKEYJOINCOLUMN$6, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "primary-key-join-column" element
     */
    public int sizeOfPrimaryKeyJoinColumnArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PRIMARYKEYJOINCOLUMN$6);
        }
    }

    /**
     * Sets array of all "primary-key-join-column" element
     */
    public void setPrimaryKeyJoinColumnArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn[] primaryKeyJoinColumnArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(primaryKeyJoinColumnArray, PRIMARYKEYJOINCOLUMN$6);
        }
    }

    /**
     * Sets ith "primary-key-join-column" element
     */
    public void setPrimaryKeyJoinColumnArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn primaryKeyJoinColumn)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn)get_store().find_element_user(PRIMARYKEYJOINCOLUMN$6, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(primaryKeyJoinColumn);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "primary-key-join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn insertNewPrimaryKeyJoinColumn(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn)get_store().insert_element_user(PRIMARYKEYJOINCOLUMN$6, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "primary-key-join-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn addNewPrimaryKeyJoinColumn()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrimaryKeyJoinColumn)get_store().add_element_user(PRIMARYKEYJOINCOLUMN$6);
            return target;
        }
    }

    /**
     * Removes the ith "primary-key-join-column" element
     */
    public void removePrimaryKeyJoinColumn(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PRIMARYKEYJOINCOLUMN$6, i);
        }
    }

    /**
     * Gets the "id-class" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass getIdClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass)get_store().find_element_user(IDCLASS$8, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "id-class" element
     */
    public boolean isSetIdClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(IDCLASS$8) != 0;
        }
    }

    /**
     * Sets the "id-class" element
     */
    public void setIdClass(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass idClass)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass)get_store().find_element_user(IDCLASS$8, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass)get_store().add_element_user(IDCLASS$8);
            }
            target.set(idClass);
        }
    }

    /**
     * Appends and returns a new empty "id-class" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass addNewIdClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.IdClass)get_store().add_element_user(IDCLASS$8);
            return target;
        }
    }

    /**
     * Unsets the "id-class" element
     */
    public void unsetIdClass()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(IDCLASS$8, 0);
        }
    }

    /**
     * Gets the "inheritance" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance getInheritance()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance)get_store().find_element_user(INHERITANCE$10, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "inheritance" element
     */
    public boolean isSetInheritance()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(INHERITANCE$10) != 0;
        }
    }

    /**
     * Sets the "inheritance" element
     */
    public void setInheritance(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance inheritance)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance)get_store().find_element_user(INHERITANCE$10, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance)get_store().add_element_user(INHERITANCE$10);
            }
            target.set(inheritance);
        }
    }

    /**
     * Appends and returns a new empty "inheritance" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance addNewInheritance()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Inheritance)get_store().add_element_user(INHERITANCE$10);
            return target;
        }
    }

    /**
     * Unsets the "inheritance" element
     */
    public void unsetInheritance()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(INHERITANCE$10, 0);
        }
    }

    /**
     * Gets the "discriminator-value" element
     */
    public java.lang.String getDiscriminatorValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DISCRIMINATORVALUE$12, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }

    /**
     * Gets (as xml) the "discriminator-value" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorValue xgetDiscriminatorValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorValue target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorValue)get_store().find_element_user(DISCRIMINATORVALUE$12, 0);
            return target;
        }
    }

    /**
     * True if has "discriminator-value" element
     */
    public boolean isSetDiscriminatorValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(DISCRIMINATORVALUE$12) != 0;
        }
    }

    /**
     * Sets the "discriminator-value" element
     */
    public void setDiscriminatorValue(java.lang.String discriminatorValue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DISCRIMINATORVALUE$12, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DISCRIMINATORVALUE$12);
            }
            target.setStringValue(discriminatorValue);
        }
    }

    /**
     * Sets (as xml) the "discriminator-value" element
     */
    public void xsetDiscriminatorValue(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorValue discriminatorValue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorValue target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorValue)get_store().find_element_user(DISCRIMINATORVALUE$12, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorValue)get_store().add_element_user(DISCRIMINATORVALUE$12);
            }
            target.set(discriminatorValue);
        }
    }

    /**
     * Unsets the "discriminator-value" element
     */
    public void unsetDiscriminatorValue()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(DISCRIMINATORVALUE$12, 0);
        }
    }

    /**
     * Gets the "discriminator-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn getDiscriminatorColumn()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn)get_store().find_element_user(DISCRIMINATORCOLUMN$14, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "discriminator-column" element
     */
    public boolean isSetDiscriminatorColumn()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(DISCRIMINATORCOLUMN$14) != 0;
        }
    }

    /**
     * Sets the "discriminator-column" element
     */
    public void setDiscriminatorColumn(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn discriminatorColumn)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn)get_store().find_element_user(DISCRIMINATORCOLUMN$14, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn)get_store().add_element_user(DISCRIMINATORCOLUMN$14);
            }
            target.set(discriminatorColumn);
        }
    }

    /**
     * Appends and returns a new empty "discriminator-column" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn addNewDiscriminatorColumn()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.DiscriminatorColumn)get_store().add_element_user(DISCRIMINATORCOLUMN$14);
            return target;
        }
    }

    /**
     * Unsets the "discriminator-column" element
     */
    public void unsetDiscriminatorColumn()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(DISCRIMINATORCOLUMN$14, 0);
        }
    }

    /**
     * Gets the "sequence-generator" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator getSequenceGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator)get_store().find_element_user(SEQUENCEGENERATOR$16, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "sequence-generator" element
     */
    public boolean isSetSequenceGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(SEQUENCEGENERATOR$16) != 0;
        }
    }

    /**
     * Sets the "sequence-generator" element
     */
    public void setSequenceGenerator(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator sequenceGenerator)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator)get_store().find_element_user(SEQUENCEGENERATOR$16, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator)get_store().add_element_user(SEQUENCEGENERATOR$16);
            }
            target.set(sequenceGenerator);
        }
    }

    /**
     * Appends and returns a new empty "sequence-generator" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator addNewSequenceGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SequenceGenerator)get_store().add_element_user(SEQUENCEGENERATOR$16);
            return target;
        }
    }

    /**
     * Unsets the "sequence-generator" element
     */
    public void unsetSequenceGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(SEQUENCEGENERATOR$16, 0);
        }
    }

    /**
     * Gets the "table-generator" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator getTableGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator)get_store().find_element_user(TABLEGENERATOR$18, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "table-generator" element
     */
    public boolean isSetTableGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(TABLEGENERATOR$18) != 0;
        }
    }

    /**
     * Sets the "table-generator" element
     */
    public void setTableGenerator(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator tableGenerator)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator)get_store().find_element_user(TABLEGENERATOR$18, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator)get_store().add_element_user(TABLEGENERATOR$18);
            }
            target.set(tableGenerator);
        }
    }

    /**
     * Appends and returns a new empty "table-generator" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator addNewTableGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.TableGenerator)get_store().add_element_user(TABLEGENERATOR$18);
            return target;
        }
    }

    /**
     * Unsets the "table-generator" element
     */
    public void unsetTableGenerator()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(TABLEGENERATOR$18, 0);
        }
    }

    /**
     * Gets a List of "named-query" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery> getNamedQueryList()
    {
        final class NamedQueryList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery>
        {
            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery get(int i)
                { return EntityImpl.this.getNamedQueryArray(i); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery old = EntityImpl.this.getNamedQueryArray(i);
                EntityImpl.this.setNamedQueryArray(i, o);
                return old;
            }

            @Override
			public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery o)
                { EntityImpl.this.insertNewNamedQuery(i).set(o); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery old = EntityImpl.this.getNamedQueryArray(i);
                EntityImpl.this.removeNamedQuery(i);
                return old;
            }

            @Override
			public int size()
                { return EntityImpl.this.sizeOfNamedQueryArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new NamedQueryList();
        }
    }

    /**
     * Gets array of all "named-query" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery[] getNamedQueryArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(NAMEDQUERY$20, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "named-query" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery getNamedQueryArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery)get_store().find_element_user(NAMEDQUERY$20, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "named-query" element
     */
    public int sizeOfNamedQueryArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(NAMEDQUERY$20);
        }
    }

    /**
     * Sets array of all "named-query" element
     */
    public void setNamedQueryArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery[] namedQueryArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(namedQueryArray, NAMEDQUERY$20);
        }
    }

    /**
     * Sets ith "named-query" element
     */
    public void setNamedQueryArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery namedQuery)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery)get_store().find_element_user(NAMEDQUERY$20, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(namedQuery);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "named-query" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery insertNewNamedQuery(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery)get_store().insert_element_user(NAMEDQUERY$20, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "named-query" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery addNewNamedQuery()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedQuery)get_store().add_element_user(NAMEDQUERY$20);
            return target;
        }
    }

    /**
     * Removes the ith "named-query" element
     */
    public void removeNamedQuery(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(NAMEDQUERY$20, i);
        }
    }

    /**
     * Gets a List of "named-native-query" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery> getNamedNativeQueryList()
    {
        final class NamedNativeQueryList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery>
        {
            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery get(int i)
                { return EntityImpl.this.getNamedNativeQueryArray(i); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery old = EntityImpl.this.getNamedNativeQueryArray(i);
                EntityImpl.this.setNamedNativeQueryArray(i, o);
                return old;
            }

            @Override
			public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery o)
                { EntityImpl.this.insertNewNamedNativeQuery(i).set(o); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery old = EntityImpl.this.getNamedNativeQueryArray(i);
                EntityImpl.this.removeNamedNativeQuery(i);
                return old;
            }

            @Override
			public int size()
                { return EntityImpl.this.sizeOfNamedNativeQueryArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new NamedNativeQueryList();
        }
    }

    /**
     * Gets array of all "named-native-query" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery[] getNamedNativeQueryArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(NAMEDNATIVEQUERY$22, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "named-native-query" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery getNamedNativeQueryArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery)get_store().find_element_user(NAMEDNATIVEQUERY$22, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "named-native-query" element
     */
    public int sizeOfNamedNativeQueryArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(NAMEDNATIVEQUERY$22);
        }
    }

    /**
     * Sets array of all "named-native-query" element
     */
    public void setNamedNativeQueryArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery[] namedNativeQueryArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(namedNativeQueryArray, NAMEDNATIVEQUERY$22);
        }
    }

    /**
     * Sets ith "named-native-query" element
     */
    public void setNamedNativeQueryArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery namedNativeQuery)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery)get_store().find_element_user(NAMEDNATIVEQUERY$22, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(namedNativeQuery);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "named-native-query" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery insertNewNamedNativeQuery(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery)get_store().insert_element_user(NAMEDNATIVEQUERY$22, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "named-native-query" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery addNewNamedNativeQuery()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.NamedNativeQuery)get_store().add_element_user(NAMEDNATIVEQUERY$22);
            return target;
        }
    }

    /**
     * Removes the ith "named-native-query" element
     */
    public void removeNamedNativeQuery(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(NAMEDNATIVEQUERY$22, i);
        }
    }

    /**
     * Gets a List of "sql-result-set-mapping" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping> getSqlResultSetMappingList()
    {
        final class SqlResultSetMappingList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping>
        {
            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping get(int i)
                { return EntityImpl.this.getSqlResultSetMappingArray(i); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping old = EntityImpl.this.getSqlResultSetMappingArray(i);
                EntityImpl.this.setSqlResultSetMappingArray(i, o);
                return old;
            }

            @Override
			public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping o)
                { EntityImpl.this.insertNewSqlResultSetMapping(i).set(o); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping old = EntityImpl.this.getSqlResultSetMappingArray(i);
                EntityImpl.this.removeSqlResultSetMapping(i);
                return old;
            }

            @Override
			public int size()
                { return EntityImpl.this.sizeOfSqlResultSetMappingArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new SqlResultSetMappingList();
        }
    }

    /**
     * Gets array of all "sql-result-set-mapping" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping[] getSqlResultSetMappingArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(SQLRESULTSETMAPPING$24, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "sql-result-set-mapping" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping getSqlResultSetMappingArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping)get_store().find_element_user(SQLRESULTSETMAPPING$24, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "sql-result-set-mapping" element
     */
    public int sizeOfSqlResultSetMappingArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(SQLRESULTSETMAPPING$24);
        }
    }

    /**
     * Sets array of all "sql-result-set-mapping" element
     */
    public void setSqlResultSetMappingArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping[] sqlResultSetMappingArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(sqlResultSetMappingArray, SQLRESULTSETMAPPING$24);
        }
    }

    /**
     * Sets ith "sql-result-set-mapping" element
     */
    public void setSqlResultSetMappingArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping sqlResultSetMapping)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping)get_store().find_element_user(SQLRESULTSETMAPPING$24, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(sqlResultSetMapping);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "sql-result-set-mapping" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping insertNewSqlResultSetMapping(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping)get_store().insert_element_user(SQLRESULTSETMAPPING$24, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "sql-result-set-mapping" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping addNewSqlResultSetMapping()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.SqlResultSetMapping)get_store().add_element_user(SQLRESULTSETMAPPING$24);
            return target;
        }
    }

    /**
     * Removes the ith "sql-result-set-mapping" element
     */
    public void removeSqlResultSetMapping(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(SQLRESULTSETMAPPING$24, i);
        }
    }

    /**
     * Gets the "exclude-default-listeners" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType getExcludeDefaultListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().find_element_user(EXCLUDEDEFAULTLISTENERS$26, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "exclude-default-listeners" element
     */
    public boolean isSetExcludeDefaultListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(EXCLUDEDEFAULTLISTENERS$26) != 0;
        }
    }

    /**
     * Sets the "exclude-default-listeners" element
     */
    public void setExcludeDefaultListeners(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType excludeDefaultListeners)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().find_element_user(EXCLUDEDEFAULTLISTENERS$26, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().add_element_user(EXCLUDEDEFAULTLISTENERS$26);
            }
            target.set(excludeDefaultListeners);
        }
    }

    /**
     * Appends and returns a new empty "exclude-default-listeners" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType addNewExcludeDefaultListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().add_element_user(EXCLUDEDEFAULTLISTENERS$26);
            return target;
        }
    }

    /**
     * Unsets the "exclude-default-listeners" element
     */
    public void unsetExcludeDefaultListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(EXCLUDEDEFAULTLISTENERS$26, 0);
        }
    }

    /**
     * Gets the "exclude-superclass-listeners" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType getExcludeSuperclassListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().find_element_user(EXCLUDESUPERCLASSLISTENERS$28, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "exclude-superclass-listeners" element
     */
    public boolean isSetExcludeSuperclassListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(EXCLUDESUPERCLASSLISTENERS$28) != 0;
        }
    }

    /**
     * Sets the "exclude-superclass-listeners" element
     */
    public void setExcludeSuperclassListeners(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType excludeSuperclassListeners)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().find_element_user(EXCLUDESUPERCLASSLISTENERS$28, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().add_element_user(EXCLUDESUPERCLASSLISTENERS$28);
            }
            target.set(excludeSuperclassListeners);
        }
    }

    /**
     * Appends and returns a new empty "exclude-superclass-listeners" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType addNewExcludeSuperclassListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EmptyType)get_store().add_element_user(EXCLUDESUPERCLASSLISTENERS$28);
            return target;
        }
    }

    /**
     * Unsets the "exclude-superclass-listeners" element
     */
    public void unsetExcludeSuperclassListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(EXCLUDESUPERCLASSLISTENERS$28, 0);
        }
    }

    /**
     * Gets the "entity-listeners" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners getEntityListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners)get_store().find_element_user(ENTITYLISTENERS$30, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "entity-listeners" element
     */
    public boolean isSetEntityListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(ENTITYLISTENERS$30) != 0;
        }
    }

    /**
     * Sets the "entity-listeners" element
     */
    public void setEntityListeners(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners entityListeners)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners)get_store().find_element_user(ENTITYLISTENERS$30, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners)get_store().add_element_user(ENTITYLISTENERS$30);
            }
            target.set(entityListeners);
        }
    }

    /**
     * Appends and returns a new empty "entity-listeners" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners addNewEntityListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.EntityListeners)get_store().add_element_user(ENTITYLISTENERS$30);
            return target;
        }
    }

    /**
     * Unsets the "entity-listeners" element
     */
    public void unsetEntityListeners()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(ENTITYLISTENERS$30, 0);
        }
    }

    /**
     * Gets the "pre-persist" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist getPrePersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist)get_store().find_element_user(PREPERSIST$32, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "pre-persist" element
     */
    public boolean isSetPrePersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PREPERSIST$32) != 0;
        }
    }

    /**
     * Sets the "pre-persist" element
     */
    public void setPrePersist(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist prePersist)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist)get_store().find_element_user(PREPERSIST$32, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist)get_store().add_element_user(PREPERSIST$32);
            }
            target.set(prePersist);
        }
    }

    /**
     * Appends and returns a new empty "pre-persist" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist addNewPrePersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PrePersist)get_store().add_element_user(PREPERSIST$32);
            return target;
        }
    }

    /**
     * Unsets the "pre-persist" element
     */
    public void unsetPrePersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PREPERSIST$32, 0);
        }
    }

    /**
     * Gets the "post-persist" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist getPostPersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist)get_store().find_element_user(POSTPERSIST$34, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "post-persist" element
     */
    public boolean isSetPostPersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(POSTPERSIST$34) != 0;
        }
    }

    /**
     * Sets the "post-persist" element
     */
    public void setPostPersist(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist postPersist)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist)get_store().find_element_user(POSTPERSIST$34, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist)get_store().add_element_user(POSTPERSIST$34);
            }
            target.set(postPersist);
        }
    }

    /**
     * Appends and returns a new empty "post-persist" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist addNewPostPersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostPersist)get_store().add_element_user(POSTPERSIST$34);
            return target;
        }
    }

    /**
     * Unsets the "post-persist" element
     */
    public void unsetPostPersist()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(POSTPERSIST$34, 0);
        }
    }

    /**
     * Gets the "pre-remove" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove getPreRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove)get_store().find_element_user(PREREMOVE$36, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "pre-remove" element
     */
    public boolean isSetPreRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PREREMOVE$36) != 0;
        }
    }

    /**
     * Sets the "pre-remove" element
     */
    public void setPreRemove(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove preRemove)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove)get_store().find_element_user(PREREMOVE$36, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove)get_store().add_element_user(PREREMOVE$36);
            }
            target.set(preRemove);
        }
    }

    /**
     * Appends and returns a new empty "pre-remove" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove addNewPreRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreRemove)get_store().add_element_user(PREREMOVE$36);
            return target;
        }
    }

    /**
     * Unsets the "pre-remove" element
     */
    public void unsetPreRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PREREMOVE$36, 0);
        }
    }

    /**
     * Gets the "post-remove" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove getPostRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove)get_store().find_element_user(POSTREMOVE$38, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "post-remove" element
     */
    public boolean isSetPostRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(POSTREMOVE$38) != 0;
        }
    }

    /**
     * Sets the "post-remove" element
     */
    public void setPostRemove(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove postRemove)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove)get_store().find_element_user(POSTREMOVE$38, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove)get_store().add_element_user(POSTREMOVE$38);
            }
            target.set(postRemove);
        }
    }

    /**
     * Appends and returns a new empty "post-remove" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove addNewPostRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostRemove)get_store().add_element_user(POSTREMOVE$38);
            return target;
        }
    }

    /**
     * Unsets the "post-remove" element
     */
    public void unsetPostRemove()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(POSTREMOVE$38, 0);
        }
    }

    /**
     * Gets the "pre-update" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate getPreUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate)get_store().find_element_user(PREUPDATE$40, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "pre-update" element
     */
    public boolean isSetPreUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PREUPDATE$40) != 0;
        }
    }

    /**
     * Sets the "pre-update" element
     */
    public void setPreUpdate(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate preUpdate)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate)get_store().find_element_user(PREUPDATE$40, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate)get_store().add_element_user(PREUPDATE$40);
            }
            target.set(preUpdate);
        }
    }

    /**
     * Appends and returns a new empty "pre-update" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate addNewPreUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PreUpdate)get_store().add_element_user(PREUPDATE$40);
            return target;
        }
    }

    /**
     * Unsets the "pre-update" element
     */
    public void unsetPreUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PREUPDATE$40, 0);
        }
    }

    /**
     * Gets the "post-update" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate getPostUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate)get_store().find_element_user(POSTUPDATE$42, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "post-update" element
     */
    public boolean isSetPostUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(POSTUPDATE$42) != 0;
        }
    }

    /**
     * Sets the "post-update" element
     */
    public void setPostUpdate(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate postUpdate)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate)get_store().find_element_user(POSTUPDATE$42, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate)get_store().add_element_user(POSTUPDATE$42);
            }
            target.set(postUpdate);
        }
    }

    /**
     * Appends and returns a new empty "post-update" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate addNewPostUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostUpdate)get_store().add_element_user(POSTUPDATE$42);
            return target;
        }
    }

    /**
     * Unsets the "post-update" element
     */
    public void unsetPostUpdate()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(POSTUPDATE$42, 0);
        }
    }

    /**
     * Gets the "post-load" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad getPostLoad()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad)get_store().find_element_user(POSTLOAD$44, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "post-load" element
     */
    public boolean isSetPostLoad()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(POSTLOAD$44) != 0;
        }
    }

    /**
     * Sets the "post-load" element
     */
    public void setPostLoad(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad postLoad)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad)get_store().find_element_user(POSTLOAD$44, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad)get_store().add_element_user(POSTLOAD$44);
            }
            target.set(postLoad);
        }
    }

    /**
     * Appends and returns a new empty "post-load" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad addNewPostLoad()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.PostLoad)get_store().add_element_user(POSTLOAD$44);
            return target;
        }
    }

    /**
     * Unsets the "post-load" element
     */
    public void unsetPostLoad()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(POSTLOAD$44, 0);
        }
    }

    /**
     * Gets a List of "attribute-override" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride> getAttributeOverrideList()
    {
        final class AttributeOverrideList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride>
        {
            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride get(int i)
                { return EntityImpl.this.getAttributeOverrideArray(i); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride old = EntityImpl.this.getAttributeOverrideArray(i);
                EntityImpl.this.setAttributeOverrideArray(i, o);
                return old;
            }

            @Override
			public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride o)
                { EntityImpl.this.insertNewAttributeOverride(i).set(o); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride old = EntityImpl.this.getAttributeOverrideArray(i);
                EntityImpl.this.removeAttributeOverride(i);
                return old;
            }

            @Override
			public int size()
                { return EntityImpl.this.sizeOfAttributeOverrideArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new AttributeOverrideList();
        }
    }

    /**
     * Gets array of all "attribute-override" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride[] getAttributeOverrideArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(ATTRIBUTEOVERRIDE$46, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "attribute-override" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride getAttributeOverrideArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride)get_store().find_element_user(ATTRIBUTEOVERRIDE$46, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "attribute-override" element
     */
    public int sizeOfAttributeOverrideArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(ATTRIBUTEOVERRIDE$46);
        }
    }

    /**
     * Sets array of all "attribute-override" element
     */
    public void setAttributeOverrideArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride[] attributeOverrideArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(attributeOverrideArray, ATTRIBUTEOVERRIDE$46);
        }
    }

    /**
     * Sets ith "attribute-override" element
     */
    public void setAttributeOverrideArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride attributeOverride)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride)get_store().find_element_user(ATTRIBUTEOVERRIDE$46, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(attributeOverride);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "attribute-override" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride insertNewAttributeOverride(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride)get_store().insert_element_user(ATTRIBUTEOVERRIDE$46, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "attribute-override" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride addNewAttributeOverride()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AttributeOverride)get_store().add_element_user(ATTRIBUTEOVERRIDE$46);
            return target;
        }
    }

    /**
     * Removes the ith "attribute-override" element
     */
    public void removeAttributeOverride(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(ATTRIBUTEOVERRIDE$46, i);
        }
    }

    /**
     * Gets a List of "association-override" elements
     */
    public java.util.List<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride> getAssociationOverrideList()
    {
        final class AssociationOverrideList extends java.util.AbstractList<com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride>
        {
            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride get(int i)
                { return EntityImpl.this.getAssociationOverrideArray(i); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride set(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride o)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride old = EntityImpl.this.getAssociationOverrideArray(i);
                EntityImpl.this.setAssociationOverrideArray(i, o);
                return old;
            }

            @Override
			public void add(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride o)
                { EntityImpl.this.insertNewAssociationOverride(i).set(o); }

            @Override
			public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride remove(int i)
            {
                com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride old = EntityImpl.this.getAssociationOverrideArray(i);
                EntityImpl.this.removeAssociationOverride(i);
                return old;
            }

            @Override
			public int size()
                { return EntityImpl.this.sizeOfAssociationOverrideArray(); }

        }

        synchronized (monitor())
        {
            check_orphaned();
            return new AssociationOverrideList();
        }
    }

    /**
     * Gets array of all "association-override" elements
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride[] getAssociationOverrideArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(ASSOCIATIONOVERRIDE$48, targetList);
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride[] result = new com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }

    /**
     * Gets ith "association-override" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride getAssociationOverrideArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride)get_store().find_element_user(ASSOCIATIONOVERRIDE$48, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }

    /**
     * Returns number of "association-override" element
     */
    public int sizeOfAssociationOverrideArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(ASSOCIATIONOVERRIDE$48);
        }
    }

    /**
     * Sets array of all "association-override" element
     */
    public void setAssociationOverrideArray(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride[] associationOverrideArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(associationOverrideArray, ASSOCIATIONOVERRIDE$48);
        }
    }

    /**
     * Sets ith "association-override" element
     */
    public void setAssociationOverrideArray(int i, com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride associationOverride)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride)get_store().find_element_user(ASSOCIATIONOVERRIDE$48, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(associationOverride);
        }
    }

    /**
     * Inserts and returns a new empty value (as xml) as the ith "association-override" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride insertNewAssociationOverride(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride)get_store().insert_element_user(ASSOCIATIONOVERRIDE$48, i);
            return target;
        }
    }

    /**
     * Appends and returns a new empty value (as xml) as the last "association-override" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride addNewAssociationOverride()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AssociationOverride)get_store().add_element_user(ASSOCIATIONOVERRIDE$48);
            return target;
        }
    }

    /**
     * Removes the ith "association-override" element
     */
    public void removeAssociationOverride(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(ASSOCIATIONOVERRIDE$48, i);
        }
    }

    /**
     * Gets the "attributes" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes getAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes)get_store().find_element_user(ATTRIBUTES$50, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }

    /**
     * True if has "attributes" element
     */
    public boolean isSetAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(ATTRIBUTES$50) != 0;
        }
    }

    /**
     * Sets the "attributes" element
     */
    public void setAttributes(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes attributes)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes)get_store().find_element_user(ATTRIBUTES$50, 0);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes)get_store().add_element_user(ATTRIBUTES$50);
            }
            target.set(attributes);
        }
    }

    /**
     * Appends and returns a new empty "attributes" element
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes addNewAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.Attributes)get_store().add_element_user(ATTRIBUTES$50);
            return target;
        }
    }

    /**
     * Unsets the "attributes" element
     */
    public void unsetAttributes()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(ATTRIBUTES$50, 0);
        }
    }

    /**
     * Gets the "name" attribute
     */
    public java.lang.String getName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$52);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }

    /**
     * Gets (as xml) the "name" attribute
     */
    public org.apache.xmlbeans.XmlString xgetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$52);
            return target;
        }
    }

    /**
     * True if has "name" attribute
     */
    public boolean isSetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(NAME$52) != null;
        }
    }

    /**
     * Sets the "name" attribute
     */
    public void setName(java.lang.String name)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(NAME$52);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(NAME$52);
            }
            target.setStringValue(name);
        }
    }

    /**
     * Sets (as xml) the "name" attribute
     */
    public void xsetName(org.apache.xmlbeans.XmlString name)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(NAME$52);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(NAME$52);
            }
            target.set(name);
        }
    }

    /**
     * Unsets the "name" attribute
     */
    public void unsetName()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(NAME$52);
        }
    }

    /**
     * Gets the "class" attribute
     */
    public java.lang.String getClass1()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(CLASS1$54);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }

    /**
     * Gets (as xml) the "class" attribute
     */
    public org.apache.xmlbeans.XmlString xgetClass1()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(CLASS1$54);
            return target;
        }
    }

    /**
     * Sets the "class" attribute
     */
    public void setClass1(java.lang.String class1)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(CLASS1$54);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(CLASS1$54);
            }
            target.setStringValue(class1);
        }
    }

    /**
     * Sets (as xml) the "class" attribute
     */
    public void xsetClass1(org.apache.xmlbeans.XmlString class1)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlString target = null;
            target = (org.apache.xmlbeans.XmlString)get_store().find_attribute_user(CLASS1$54);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlString)get_store().add_attribute_user(CLASS1$54);
            }
            target.set(class1);
        }
    }

    /**
     * Gets the "access" attribute
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType.Enum getAccess()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ACCESS$56);
            if (target == null)
            {
                return null;
            }
            return (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType.Enum)target.getEnumValue();
        }
    }

    /**
     * Gets (as xml) the "access" attribute
     */
    public com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType xgetAccess()
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType)get_store().find_attribute_user(ACCESS$56);
            return target;
        }
    }

    /**
     * True if has "access" attribute
     */
    public boolean isSetAccess()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(ACCESS$56) != null;
        }
    }

    /**
     * Sets the "access" attribute
     */
    public void setAccess(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType.Enum access)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(ACCESS$56);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(ACCESS$56);
            }
            target.setEnumValue(access);
        }
    }

    /**
     * Sets (as xml) the "access" attribute
     */
    public void xsetAccess(com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType access)
    {
        synchronized (monitor())
        {
            check_orphaned();
            com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType target = null;
            target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType)get_store().find_attribute_user(ACCESS$56);
            if (target == null)
            {
                target = (com.googlecode.horncomb.orm.jpa.v10.xmlbeans.AccessType)get_store().add_attribute_user(ACCESS$56);
            }
            target.set(access);
        }
    }

    /**
     * Unsets the "access" attribute
     */
    public void unsetAccess()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(ACCESS$56);
        }
    }

    /**
     * Gets the "metadata-complete" attribute
     */
    public boolean getMetadataComplete()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(METADATACOMPLETE$58);
            if (target == null)
            {
                return false;
            }
            return target.getBooleanValue();
        }
    }

    /**
     * Gets (as xml) the "metadata-complete" attribute
     */
    public org.apache.xmlbeans.XmlBoolean xgetMetadataComplete()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlBoolean target = null;
            target = (org.apache.xmlbeans.XmlBoolean)get_store().find_attribute_user(METADATACOMPLETE$58);
            return target;
        }
    }

    /**
     * True if has "metadata-complete" attribute
     */
    public boolean isSetMetadataComplete()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().find_attribute_user(METADATACOMPLETE$58) != null;
        }
    }

    /**
     * Sets the "metadata-complete" attribute
     */
    public void setMetadataComplete(boolean metadataComplete)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_attribute_user(METADATACOMPLETE$58);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_attribute_user(METADATACOMPLETE$58);
            }
            target.setBooleanValue(metadataComplete);
        }
    }

    /**
     * Sets (as xml) the "metadata-complete" attribute
     */
    public void xsetMetadataComplete(org.apache.xmlbeans.XmlBoolean metadataComplete)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.XmlBoolean target = null;
            target = (org.apache.xmlbeans.XmlBoolean)get_store().find_attribute_user(METADATACOMPLETE$58);
            if (target == null)
            {
                target = (org.apache.xmlbeans.XmlBoolean)get_store().add_attribute_user(METADATACOMPLETE$58);
            }
            target.set(metadataComplete);
        }
    }

    /**
     * Unsets the "metadata-complete" attribute
     */
    public void unsetMetadataComplete()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_attribute(METADATACOMPLETE$58);
        }
    }
}
